home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / e_to_l / edsspell / unit1.pas < prev    next >
Pascal/Delphi Source File  |  1996-09-15  |  4KB  |  185 lines

  1. unit Unit1;
  2.  
  3. interface
  4. uses
  5.     SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  6.     Forms, Dialogs, StdCtrls, DBFilter, Grids, DBGrids, DB, DBTables,DBiTypes,DBiProcs,
  7.     ExtCtrls, DBCtrls, Mask, TabNotBk;
  8.  
  9. type
  10.     TDemo1 = class(TForm)
  11.         Table1: TTable;
  12.         DataSource1: TDataSource;
  13.         FilterFunc1: TFilterFunc;
  14.         Filter: TFilter;
  15.         Filter1: TFilter;
  16.     TabbedNotebook1: TTabbedNotebook;
  17.     StoredBtn: TButton;
  18.     Button1: TButton;
  19.     DesignerBtn: TButton;
  20.     CBackOnBtn: TButton;
  21.     CBackOffBtn: TButton;
  22.     AddBtn: TButton;
  23.     ClearBtn: TButton;
  24.     ActivateBtn: TButton;
  25.     DeActivateBtn: TButton;
  26.     RemoveBtn: TButton;
  27.     Label10: TLabel;
  28.     Label3: TLabel;
  29.     Panel1: TPanel;
  30.     DBNavigator1: TDBNavigator;
  31.     DBEdit1: TDBEdit;
  32.     DBEdit2: TDBEdit;
  33.     DBEdit3: TDBEdit;
  34.         DBGrid1: TDBGrid;
  35.         Memo1: TMemo;
  36.     Memo2: TMemo;
  37.     Memo3: TMemo;
  38.         Button2: TButton;
  39.     Memo4: TMemo;
  40.     Memo5: TMemo;
  41.     Table2: TTable;
  42.         Button3: TButton;
  43.         procedure AddBtnClick(Sender: TObject);
  44.         procedure RemoveBtnClick(Sender: TObject);
  45.         procedure DeActivateBtnClick(Sender: TObject);
  46.         procedure ActivateBtnClick(Sender: TObject);
  47.         procedure DesignerBtnClick(Sender: TObject);
  48.         procedure ClearBtnClick(Sender: TObject);
  49.         procedure StoredBtnClick(Sender: TObject);
  50.         procedure CBackOnBtnClick(Sender: TObject);
  51.         function FilterFunc1FilterRecord(Sender: TObject;
  52.             DataSet: TDataset): Boolean;
  53.         procedure CBackOffBtnClick(Sender: TObject);
  54.         procedure Button1Click(Sender: TObject);
  55.         procedure Button2Click(Sender: TObject);
  56.         procedure Button3Click(Sender: TObject);
  57.     private
  58.         { Private declarations }
  59.     public
  60.         { Public declarations }
  61.     end;
  62.  
  63. var
  64.     Demo1: TDemo1;
  65.  
  66. implementation
  67. uses filtfrm;
  68. {$R *.DFM}
  69.  
  70. procedure TDemo1.AddBtnClick(Sender: TObject);
  71. begin
  72. with Filter do
  73. begin
  74.     Dataset:=Table1;
  75.     Add('COMPANY',canEQ,'U..',canOR);
  76.     Add('LASTINVOICEDATE',canGT,'11/8/94 1:05:03 AM',canNOTDEFINED);
  77.     Active:=True;
  78. end;
  79. end;
  80.  
  81. procedure TDemo1.RemoveBtnClick(Sender: TObject);
  82. begin
  83.     Filter.RemoveFilter;
  84. end;
  85.  
  86. procedure TDemo1.DeActivateBtnClick(Sender: TObject);
  87. begin
  88.     Filter.Active:=False;
  89. end;
  90.  
  91. procedure TDemo1.ActivateBtnClick(Sender: TObject);
  92. begin
  93.     Filter.Active:=True;
  94. end;
  95.  
  96.  
  97. procedure TDemo1.ClearBtnClick(Sender: TObject);
  98. begin
  99. with Filter do
  100. begin
  101.     ClearFilterConditions;
  102.     RemoveFilter;
  103.     end;
  104. end;
  105.  
  106.  
  107. {FilterDesigner demo buttons}
  108. procedure TDemo1.DesignerBtnClick(Sender: TObject);
  109. begin
  110.     Filter1.Dataset:=Table1;
  111.     with filtfrm.TFilterForm.Create(Application) do
  112.     begin
  113.         try
  114.             Filter:=Filter1;
  115.             showmodal;
  116.         finally
  117.             free;
  118.         end;
  119.     end;
  120.     Filter1.SaveToFile('filter.txt');
  121. end;
  122.  
  123. procedure TDemo1.Button3Click(Sender: TObject);
  124. begin
  125.   Filter1.LoadFromFile('filter.txt');
  126. end;
  127.  
  128. procedure TDemo1.StoredBtnClick(Sender: TObject);
  129. begin
  130.     Filter1.Prepare;
  131. end;
  132.  
  133. procedure TDemo1.Button1Click(Sender: TObject);
  134. begin
  135.     Filter1.Active:=True;
  136. end;
  137.  
  138. procedure TDemo1.Button2Click(Sender: TObject);
  139. begin
  140.     Filter1.RemoveFilter;
  141. end;
  142.  
  143.  
  144.  
  145. {User defined OnFilterRecord Event Handler - the 'Result' variable
  146.  determines wether the record is displayed, True it is dsiplayed, False it
  147.  is not displayed, you can use you can access any field or object or
  148.  other Dataset EXCEPT you mus not do anything that would result in
  149.  either a change in the Dataset State or in the Dataset record position!!!!}
  150. function TDemo1.FilterFunc1FilterRecord(Sender: TObject; DataSet: TDataset): Boolean;
  151. var
  152. P:string;
  153. S:integer;
  154. D:longint;
  155. pt:pointer;
  156. t:ttable;
  157. begin
  158.     P:=Dataset.fieldbyname('COMPANY').asstring;
  159.     S:=pos('c',P);
  160.     if S>0 then Result:=True else result:=False;
  161.     t:=table2;
  162.     D:=Table2.FieldByName('EmpNo').AsInteger;
  163.     T.FindKey([D]);
  164. end;
  165.  
  166. {Turns your filter function on, note if you do not have  GoFirst set
  167. then we do not seek for a record to match your criteria we wait for
  168. you to do something that causes a record to be read}
  169. procedure TDemo1.CBackOnBtnClick(Sender: TObject);
  170. begin
  171.     FilterFunc1.Active:=True;
  172. end;
  173.  
  174. {Turns your FilterFunction off,note if you do not have GoFirst set
  175. then we do not refresh the display we wait for you to do something
  176. that causes a record to be read, this can be useful if you use the filter
  177. to seek to a record then turn of and read all records.}
  178. procedure TDemo1.CBackOffBtnClick(Sender: TObject);
  179. begin
  180.     FilterFunc1.Active:=False;
  181. end;
  182.  
  183.  
  184. end.
  185.